<?php namespace web\admin\controller;
/*
*分类管理控制器
*/
class Category extends Common{
    protected $db;
    public function __construct(){
        //为了不覆盖父级的构造方法
        parent::__construct();
        $this->db=new \system\model\Category();
    }
    //分类管理首页
    public function index(){
        //获得首页数据
        //Data::tree($data, $title, $fieldPri = 'cid', $fieldPid = 'pid');
        $data = Data::tree($this->db->get(),'cname');
       // var_dump($data);
        //View::with('data',$data)【分配变量】;
        //分配变量显示模板
        View::with('data',$data)->make();
        //显示模板
        //View::make();
    }
    //顶级分类的添加
    public function add(){
      if(IS_POST){
       //如果添加成功
       if($this->db->store()) {
         message('添加成功','','success');
       }
          //如果添加失败提示错误信息
          message($this->db->getError(),'','error');
      }
        View::make();
    }
    //添加子集分类
    public function addSon(){
        $cid = q('get.cid',0,intval);
        if(IS_POST){
            if($this->db->store()){
                message('添加成功','','success');
            }
                //如果加载失败提示错误信息
                message($this->db->getError(),'','error');
        }
        //获取所属分类（父级id）
        //field获取指定字段的数据
        //通过$cid找数据库和$cid相等的cid，获得cid和cname两个字段
        $cateData = $this->db->where('cid',$cid)->field(['cid','cname'])->first();
       // p($cateData);
        View::with('cateData',$cateData)->make();
    }
    //分类编辑
    public function edit(){
        if(IS_POST){
            if($this->db->edit()){
                message('编辑成功','','success');
            }
                message($this->db->getError(),'','error');
        }
        $cid = q('get.cid',0,intval);
        //获取旧数据
        $oldData = $this->db->where('cid',$cid)->first();
        //处理所属分类getCataData()是模型中的方法来完成
        $cateData = $this->db->getCateData($cid);
        //分配变量
        View::with('oldData',$oldData)->with('cateData',$cateData)->make();
    }
    //删除分类
    public function del(){
        $cid = q('get.cid',0,intval);
        //把子集提一级（上位）
        //获取当前的cid对应的pid
        //pluck是获得的单一数据
        $pid = $this->db->where('cid',$cid)->pluck('pid');
       // p($pid);exit;
        $this->db->where('pid',$cid)->update(['pid'=>$pid]);
        //把当前cid数据删除
        $this->db->where('cid',$cid)->delete();
        message('删除成功',u('index'),'success');
    }

}
